Christoffer Andersson

downwards arrow

My Projects

downwards arrow

My projects

Procedural Grass from Ghost of Thusima

A recreation of the grass in the game Ghost of Thusima. Uses a combination of instanced rendering and compute shaders in order to achieve performance and versatility. Dynamically generates meshes each frame that adapts to external forces such as wind. Built on top of Custom Engine.

Raymarcher

CPU implementation of raymarching. Is a variation of raytracing that uses signed distance fields to dynamically choose stepsize. Built on top of Pixelated.

Custom Engine

A cross platform engine written in Rust and WebGPU. Focuses on simplicity and not abstracting away too much from the user. Used as base for projects such as Procedural Grass from Ghost of Thusima and Post Processing.

Post Processing

Post processing shaders using Box, Median, Gaussian and Sobel convolution filters. Built on top of Custom Engine.

Pixelated

An opinionated cross platform pixel renderer focusing on simplicity. Super easy way to draw pixels to the screen in Rust. Used as base for projects such as Raymarcher.

Vgen

CLI for type safe struct validation in Golang. Generate custom types that allow for type safe validation as compared to the common runtime string based approach. Support for most common validation rules, nested rules, custom rules and more. More detailed description can be found in github repo.

Cargorun

CLI for running rust projects. Allows for shell/auto completion when running examples or binaries from a cargo project. More detailed description can be found in github repo.

Slacky

CLI for converting slack json data to a more readable format.

Multiplayer Yatzy

A yatzy sheet with support for multiple devices. Uses websockets to keep clients up to date.

Gif-Maker

A tool for creating custom gifs from existing images or from text. Supports scaling, rotating, scrolling and more.

github logo github logo github logo